package cn.itcast.search.service;

import cn.itcast.hmall.dto.common.PageDTO;
import cn.itcast.hmall.dto.search.SearchReqDTO;
import cn.itcast.hmall.pojo.item.Item;
import cn.itcast.hmall.pojo.item.ItemDoc;

import java.io.IOException;
import java.util.List;
import java.util.Map;

/**
 * @author oldwine
 * @date 2022/6/21
 * @Version 1.0
 */
public interface SearchService {
    void importItemData(List<Item> vo) throws IOException;

    /**
     * 搜索栏自动补全功能
     * @param key 搜索关键词
     * @return 返回搜索结果
     */
    List<String> getSuggestions(String key);

    /**
     * 过滤项聚合功能
     * @param params
     * @return
     */
    Map<String, List<String>> getFilters(SearchReqDTO params);

    /**
     * 搜索功能
     * @param params 请求参数封装
     * @return 结果
     */
    PageDTO<ItemDoc> search(SearchReqDTO params);

    /**
     * 根据id删除商品信息
     * @param id 商品id
     */
    void insertById(Long id);

    /**
     * 根据id添加商品信息
     * @param id 商品id
     */
    void deleteById(Long id);
}
